package englishChicken;

import java.util.List;
import data.JDBCUsuarioDAO;

import utils.UIDGenerator;

public class AlmacenDeUsuarios {

	private static AlmacenDeUsuarios au;
	private static JDBCUsuarioDAO jdbcUsuarios;
	
	public static synchronized AlmacenDeUsuarios getInstance(){
		if(au==null){
			au=new AlmacenDeUsuarios();
			jdbcUsuarios=new JDBCUsuarioDAO();
		}
		return au;
	}
	
	private AlmacenDeUsuarios(){
	}
	
	public void addUsuario(Usuario nuevoUsuario){
		UIDGenerator uidG=UIDGenerator.getInstance();
		jdbcUsuarios.insert(uidG.getKey(),nuevoUsuario);
	}
	
	public void modifyUsuario(Usuario modUsuario){
		jdbcUsuarios.update(modUsuario);
	}
	
	public List<Usuario> getUsuarios(){
		return jdbcUsuarios.selectAll();
	}
	
	public Usuario getUsuario(String apodo) {
		String caracteresEspeciales=
			"Ã¡:&aacute;,"+
			"Ã©:&eacute;,"+
			"Ã­:&iacute;,"+
			"Ã³:&oacute;,"+
			"Ãº:&uacute;,"+
			"Ã±:&ntilde;,"+
			"Ã:&Aacute;,"+
			"Ã:&Eacute;,"+
			"Ã:&Iacute;,"+
			"Ã:&Oacute;,"+
			"Ã:&Uacute;,"+
			"Ã:&Ntilde";
		String cEspArray[]=caracteresEspeciales.split(",");
		for(int i=0;i<cEspArray.length;i++)
			apodo=apodo.replaceAll(cEspArray[i].split(":")[0],cEspArray[i].split(":")[1]);
		return jdbcUsuarios.selectByName(apodo);
	}
	
	public Usuario getUsuarioUid(String uid){
		return jdbcUsuarios.selectByUID(uid);
	}
}
